home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #11 / Amiga Plus CD - 2004 - No. 11.iso / AmiSoft / Game / demo / Mattonite.lha / Mattonite / MattoniteEditor.AMOS / MattoniteEditor.amosSourceCode
AMOS Source Code  |  2002-09-22  |  14KB  |  484 lines

  1. '-> Mattonite Editor by Stefano Maria Regattin 
  2. 'i> 13 ottobre 1996
  3. 'm> 14,16,17,18,19,20,25,26,30 ottobre 1996
  4. 'm> 3 luglio 1997
  5. 'm> 12 novembre 1997 
  6. 'm> 10,18 dicembre 1997
  7. 'm> 15 febbraio 1998 
  8. 'm> 19,20,21,22,24,30 maggio 2000
  9. 'm> 17 luglio 2000 
  10. 'm> 6 dicembre 2000
  11. 'm> 24 gennaio 2002
  12. '------------------- 
  13. OGGETTI$="MattoniteStandardObjects.Abk"
  14. BANCO=65535
  15. POSIZIONELINEAMAGGIORE=255
  16. POSIZIONELINEAMINORE=0
  17. Dim MATTONCINO(246),X0ZONA(246),Y0ZONA(246)
  18. Global FILE$,LIVELLO$,NOMEFILE$,OGGETTI$,PERCORSO$,PERCORSODEILIVELLI$
  19. Global PERCORSODEGLIOGGETTI$
  20. Global BANCO,BLULINEAMINORE,BONUS,C0LORELINEAMAGGIORE,C0LORELINEAMINORE
  21. Global CONVERSIONERIUSCITA,LINEAMAGGIORE
  22. Global LIVELLO,LINEE,POSIZIONELINEAMAGGIORE,POSIZIONELINEAMINORE
  23. Global RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  24. Global ROSSOLINEAMINORE,VERDELINEAMINORE
  25. Global MATTONCINO(),X0ZONA(),Y0ZONA()
  26. Proc INDIVIDUALAPOSIZIONEDELPROGRAMMA
  27. Proc IMPOSTAIPERCORSIDEIFILE
  28. Proc IMPOSTALOSCHERMO
  29. Proc IMPOSTALARCOBALENO
  30. Proc IMPOSTAILAMPEGGI
  31. Proc CARICAGLIOGGETTI
  32. Proc IMPOSTAICOLORI
  33. Proc IMPOSTALEZONEDEIMATTONCINI
  34. Proc IMPOSTALABARRADISCORRIMENTO
  35. Proc MOSTRALEZONE
  36. Proc MOSTRALALINEAATTIVA
  37. LINEAMAGGIORE=True
  38. Proc MOSTRALALINEAATTIVA
  39. Ink 62 : Bar 20,209 To 29,218
  40. Ink 61 : Polyline 20,217 To 20,209 To 28,209
  41. Polyline 24,211 To 22,213 To 22,214 To 24,216
  42. Ink 63 : Polyline 21,218 To 29,218 To 29,210
  43. Polyline 27,211 To 25,213 To 25,214 To 27,216
  44. Set Zone 248,20,209 To 29,218
  45. Get Icon 1,20,209 To 29+1,218+1
  46. Ink 62 : Bar 30,209 To 39,218
  47. Ink 61 : Polyline 30,217 To 30,209 To 38,209
  48. Polyline 32,211 To 34,213 To 34,214 To 32,216
  49. Ink 63 : Polyline 31,218 To 39,218 To 39,210
  50. Polyline 35,211 To 37,213 To 37,214 To 35,216
  51. Set Zone 249,30,209 To 39,218
  52. Get Icon 2,30,209 To 39+1,218+1
  53. Set Zone 250,233,209 To 264,223
  54. Set Zone 251,233,225 To 264,239
  55. Set Zone 252,233,241 To 264,255
  56. Set Zone 253,273,0 To 319,255
  57. Proc MOSTRAILLIVELLO
  58. Paste Icon 64,209,1
  59. Set Zone 254,64,209 To 73,218
  60. Paste Icon 74,209,2
  61. Set Zone 255,74,209 To 83,218
  62. Proc MOSTRAILBONUS
  63. Paste Icon 140,209,1
  64. Set Zone 256,140,209 To 149,218
  65. Paste Icon 150,209,2
  66. Set Zone 257,150,209 To 159,218
  67. Set Zone 258,0,248 To 31,255 : Rem Load 
  68. Set Zone 259,40,248 To 71,255 : Rem Save 
  69. Set Zone 260,80,248 To 159,255 : Rem Line 
  70. Set Zone 261,0,240 To 55,247 : Rem Rainbow
  71. Set Zone 262,56,240 To 71,247 : Rem Arrow up 
  72. Set Zone 263,72,240 To 87,247 : Rem Arrow down 
  73. Set Zone 264,160,209 To 191,216 : Rem Quit 
  74. Ink 29,32 : Text 160,216,"Quit"
  75. Limit Mouse 
  76. Paste Bob 0,209,83
  77. MATTONCINO=1
  78. Do 
  79.  XTOPO=X Screen(X Mouse)
  80.  YTOPO=Y Screen(Y Mouse)
  81.  TASTODELTOPOCLICCATO=Mouse Click
  82.  TASTODELTOPOPREMUTO=Mouse Key
  83.  ZONATOPO=Mouse Zone
  84.  If TASTODELTOPOPREMUTO=1
  85.   If ZONATOPO>0 and ZONATOPO<248
  86.    If MATTONCINO=0
  87.     Ink 0 : Bar X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1) To X0ZONA(ZONATOPO-1)+19,Y0ZONA(ZONATOPO-1)+9
  88.    Else 
  89.     Paste Bob X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1),MATTONCINO+82
  90.    End If 
  91.    MATTONCINO(ZONATOPO-1)=MATTONCINO
  92.   Else If ZONATOPO>249 and ZONATOPO<253
  93.    If LINEAMAGGIORE=True
  94.     ROSSO=C0LORELINEAMAGGIORE/256
  95.     VERDE=C0LORELINEAMAGGIORE/16 mod 16
  96.     BLU=C0LORELINEAMAGGIORE mod 16
  97.    Else 
  98.     ROSSO=C0LORELINEAMINORE/256
  99.     VERDE=C0LORELINEAMINORE/16 mod 16
  100.     BLU=C0LORELINEAMINORE mod 16
  101.    End If 
  102.    If ZONATOPO=250
  103.     ROSSO=(XTOPO-233)/2
  104.     Hslider 233,209 To 264,223,16,ROSSO,1
  105.     Ink 0 : Bar 217,216 To 232,223
  106.     ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  107.    Else If ZONATOPO=251
  108.     VERDE=(XTOPO-233)/2
  109.     Hslider 233,225 To 264,239,16,VERDE,1
  110.     Ink 0 : Bar 217,232 To 232,239
  111.     VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  112.    Else If ZONATOPO=252
  113.     BLU=(XTOPO-233)/2
  114.     Hslider 233,241 To 264,255,16,BLU,1
  115.     Ink 0 : Bar 217,248 To 232,255
  116.     BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  117.    End If 
  118.    C0LORE=ROSSO*256+VERDE*16+BLU
  119.    Colour 1,C0LORE
  120.    If LINEAMAGGIORE=True
  121.     C0LORELINEAMAGGIORE=C0LORE
  122.     Rain(0,POSIZIONELINEAMAGGIORE)=C0LORELINEAMAGGIORE
  123.    Else 
  124.     C0LORELINEAMINORE=C0LORE
  125.     Rain(0,POSIZIONELINEAMINORE)=C0LORELINEAMINORE
  126.    End If 
  127.    Rainbow 0,257,0,271
  128.   Else If ZONATOPO=253
  129.    If YTOPO>POSIZIONELINEAMINORE
  130.     Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  131.     POSIZIONELINEAMAGGIORE=YTOPO
  132.     LINEAMAGGIORE=True
  133.     Proc MOSTRALALINEAATTIVA
  134.    End If 
  135.   Else If ZONATOPO=258
  136.    Inverse On : Print At(0,31);"Load"; : Inverse Off 
  137.    Proc CARICAILLIVELLO
  138.    Proc DABANCOAVARIABILI
  139.    Rainbow 0,257,0,271
  140.    Proc MOSTRAIMATTONCINI
  141.    Proc MOSTRAILBONUS
  142.    Proc MOSTRALEZONE
  143.    Proc MOSTRALALINEAATTIVA
  144.    LINEAMAGGIORE= Not LINEAMAGGIORE
  145.    Proc MOSTRALALINEAATTIVA
  146.   Else If ZONATOPO=259
  147.    Inverse On : Print At(5,31);"Save"; : Inverse Off 
  148.    Proc DAVARIABILIABANCO
  149.    Proc SALVAILLIVELLO
  150.    Proc MOSTRALEZONE
  151.    Proc MOSTRALALINEAATTIVA
  152.   End If 
  153.  Else If TASTODELTOPOPREMUTO=2
  154.   If ZONATOPO=253
  155.    If YTOPO<POSIZIONELINEAMAGGIORE
  156.     Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  157.     POSIZIONELINEAMINORE=YTOPO
  158.     LINEAMAGGIORE=False
  159.     Proc MOSTRALALINEAATTIVA
  160.    End If 
  161.   Else If ZONATOPO=254
  162.    Add LIVELLO,-1,0 To 999
  163.    Proc MOSTRAILLIVELLO
  164.   Else If ZONATOPO=255
  165.    Add LIVELLO,1,0 To 999
  166.    Proc MOSTRAILLIVELLO
  167.   Else If ZONATOPO=256
  168.    Add BONUS,-1,0 To 9999999
  169.    Proc MOSTRAILBONUS
  170.   Else If ZONATOPO=257
  171.    Add BONUS,1,0 To 9999999
  172.    Proc MOSTRAILBONUS
  173.   End If 
  174.  End If 
  175.  If TASTODELTOPOCLICCATO=1
  176.   If ZONATOPO=248
  177.    Add MATTONCINO,-1,0 To 33
  178.    If MATTONCINO=0
  179.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  180.    Else 
  181.     Paste Bob 0,209,82+MATTONCINO
  182.    End If 
  183.   Else If ZONATOPO=249
  184.    Add MATTONCINO,1,0 To 33
  185.    If MATTONCINO=0
  186.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  187.    Else 
  188.     Paste Bob 0,209,82+MATTONCINO
  189.    End If 
  190.   Else If ZONATOPO=254
  191.    Add LIVELLO,-1,0 To 999
  192.    Proc MOSTRAILLIVELLO
  193.   Else If ZONATOPO=255
  194.    Add LIVELLO,1,0 To 999
  195.    Proc MOSTRAILLIVELLO
  196.   Else If ZONATOPO=256
  197.    Add BONUS,-1,0 To 9999999
  198.    Proc MOSTRAILBONUS
  199.   Else If ZONATOPO=257
  200.    Add BONUS,1,0 To 9999999
  201.    Proc MOSTRAILBONUS
  202.   Else If ZONATOPO=260
  203.    LINEAMAGGIORE= Not LINEAMAGGIORE
  204.    Proc MOSTRALALINEAATTIVA
  205.   Else If ZONATOPO=261
  206.    Inverse On : Print At(0,30);"Rainbow"; : Inverse Off 
  207.    LINEE=POSIZIONELINEAMAGGIORE-POSIZIONELINEAMINORE+1
  208.    If LINEE>2
  209.     Proc CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  210.     Proc PROGRESSIONECOLORI
  211.    Else 
  212.     Bell 1
  213.    End If 
  214.    Proc MOSTRALEZONE
  215.    Proc MOSTRALALINEAATTIVA
  216.   Else If ZONATOPO=262
  217.    Inverse On : Print At(7,30);Chr$(147);Chr$(148); : Inverse Off 
  218.    If LINEAMAGGIORE=True
  219.     If POSIZIONELINEAMAGGIORE>0 and POSIZIONELINEAMAGGIORE>POSIZIONELINEAMINORE+1
  220.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  221.      Dec POSIZIONELINEAMAGGIORE
  222.      Wait 5
  223.     End If 
  224.    Else 
  225.     If POSIZIONELINEAMINORE>0
  226.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  227.      Dec POSIZIONELINEAMINORE
  228.      Wait 5
  229.     End If 
  230.    End If 
  231.    Proc MOSTRALEZONE
  232.    Proc MOSTRALALINEAATTIVA
  233.   Else If ZONATOPO=263
  234.    Inverse On : Print At(9,30);Chr$(149);Chr$(150); : Inverse Off 
  235.    If LINEAMAGGIORE=True
  236.     If POSIZIONELINEAMAGGIORE<255
  237.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  238.      Inc POSIZIONELINEAMAGGIORE
  239.      Wait 5
  240.     End If 
  241.    Else 
  242.     If POSIZIONELINEAMINORE<255 and POSIZIONELINEAMINORE<POSIZIONELINEAMAGGIORE-1
  243.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  244.      Inc POSIZIONELINEAMINORE
  245.      Wait 5
  246.     End If 
  247.    End If 
  248.    Proc MOSTRALEZONE
  249.    Proc MOSTRALALINEAATTIVA
  250.   Else If ZONATOPO=264
  251.    Exit 
  252.   End If 
  253.  End If 
  254. Loop 
  255. Rainbow Del 0 : Screen Close 0 : Erase All : End 
  256. Procedure CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  257.  ROSSOLINEAMAGGIORE=C0LORELINEAMAGGIORE/256
  258.  ROSSOLINEAMINORE=C0LORELINEAMINORE/256
  259.  RAGIONEDELROSSO#=(ROSSOLINEAMAGGIORE-ROSSOLINEAMINORE)/(LINEE-1.0)
  260.  VERDELINEAMAGGIORE=C0LORELINEAMAGGIORE/16 mod 16
  261.  VERDELINEAMINORE=C0LORELINEAMINORE/16 mod 16
  262.  RAGIONEDELVERDE#=(VERDELINEAMAGGIORE-VERDELINEAMINORE)/(LINEE-1.0)
  263.  BLULINEAMAGGIORE=C0LORELINEAMAGGIORE mod 16
  264.  BLULINEAMINORE=C0LORELINEAMINORE mod 16
  265.  RAGIONEDELBLU#=(BLULINEAMAGGIORE-BLULINEAMINORE)/(LINEE-1.0)
  266. End Proc
  267. Procedure CARICAGLIOGGETTI
  268.  Load PERCORSODEGLIOGGETTI$+OGGETTI$
  269. End Proc
  270. Procedure CARICAILLIVELLO
  271.  Erase BANCO
  272.  LIVELLO$="Livello"+Str$(LIVELLO)-" "
  273.  FILE$=PERCORSODEILIVELLI$+LIVELLO$
  274.  If Exist(FILE$)
  275.   Open In 1,FILE$
  276.   MARCATORE$=Input$(1,9)
  277.   LUNGHEZZABANCO=Lof(1)
  278.   Close 1
  279.   If MARCATORE$="Mattonite"
  280.    Reserve As Work BANCO,LUNGHEZZABANCO
  281.    Bload FILE$,Start(BANCO)
  282.   End If 
  283.  End If 
  284. End Proc
  285. Procedure DABANCOAVARIABILI
  286.  If Length(BANCO)>0
  287.   INDIRIZZO=Start(BANCO)+9
  288.   For A=0 To 246
  289.    MATTONCINO(A)=Peek(INDIRIZZO)
  290.    Inc INDIRIZZO
  291.   Next A
  292.   For A=0 To 255
  293.    ARCOBALENO=Peek(INDIRIZZO)
  294.    Inc INDIRIZZO
  295.    ARCOBALENO=ARCOBALENO+Peek(INDIRIZZO)*$100
  296.    Rain(0,A)=ARCOBALENO
  297.    Inc INDIRIZZO
  298.   Next A
  299.   BONUS=Peek(INDIRIZZO)
  300.   Inc INDIRIZZO
  301.   Add BONUS,Peek(INDIRIZZO)*100
  302.   Inc INDIRIZZO
  303.   Add BONUS,Peek(INDIRIZZO)*10000
  304.   Inc INDIRIZZO
  305.   Add BONUS,Peek(INDIRIZZO)*1000000
  306.   Inc INDIRIZZO
  307.   Print At(0,29);
  308.   If INDIRIZZO=Start(BANCO)+Length(BANCO)
  309.    Print "Level";LIVELLO;" loaded";
  310.   Else 
  311.    Print "Data error";
  312.   End If 
  313.  Else 
  314.   Print At(0,29);"Level not loaded";
  315.  End If 
  316.  Wait 100
  317.  Print At(0,29);Space$(28);
  318. End Proc
  319. Procedure DAVARIABILIABANCO
  320.  Reserve As Work BANCO,772
  321.  INDIRIZZO=Start(BANCO)
  322.  Poke$ INDIRIZZO,"Mattonite"
  323.  Add INDIRIZZO,9
  324.  For A=0 To 246
  325.   Poke INDIRIZZO,MATTONCINO(A)
  326.   Inc INDIRIZZO
  327.  Next A
  328.  For A=0 To 255
  329.   ARCOBALENO=Rain(0,A)
  330.   Poke INDIRIZZO,ARCOBALENO mod $100
  331.   Inc INDIRIZZO
  332.   Poke INDIRIZZO,ARCOBALENO/$100
  333.   Inc INDIRIZZO
  334.  Next A
  335.  Poke INDIRIZZO,BONUS mod 100
  336.  Inc INDIRIZZO
  337.  Poke INDIRIZZO,BONUS/100 mod 100
  338.  Inc INDIRIZZO
  339.  Poke INDIRIZZO,BONUS/10000 mod 100
  340.  Inc INDIRIZZO
  341.  Poke INDIRIZZO,BONUS/1000000 mod 100
  342.  Inc INDIRIZZO
  343.  Print At(0,29);
  344.  If INDIRIZZO=Start(BANCO)+Length(BANCO)
  345.   Print "Level";LIVELLO;" converted";
  346.   CONVERSIONERIUSCITA=True
  347.  Else 
  348.   Print "Data error";
  349.   CONVERSIONERIUSCITA=False
  350.  End If 
  351.  Wait 100
  352.  Print At(0,29);Space$(28);
  353. End Proc
  354. Procedure INDIVIDUALAPOSIZIONEDELPROGRAMMA
  355.  PERCORSO$=Dir$
  356. End Proc
  357. Procedure IMPOSTAICOLORI
  358.  Get Bob Palette 
  359. End Proc
  360. Procedure IMPOSTAILAMPEGGI
  361.  Flash 20,"(0FF,2)(FFF,1)(0FF,2)(000,1)"
  362.  Flash 21,"(F70,2)(FFF,1)(F70,2)(000,1)"
  363.  Flash 22,"(F77,9)(FF7,9)(7F7,9)(7FF,9)(77F,9)(F7F,9)"
  364. End Proc
  365. Procedure IMPOSTAIPERCORSIDEIFILE
  366.  PERCORSODEGLIOGGETTI$=PERCORSO$+"Grafica/"
  367.  PERCORSODEILIVELLI$=PERCORSO$+"Livelli/"
  368. End Proc
  369. Procedure IMPOSTALABARRADISCORRIMENTO
  370.  Set Slider 61,61,29,1,63,63,29,1
  371. End Proc
  372. Procedure IMPOSTALARCOBALENO
  373.  Set Rainbow 0,0,271,"","","" : Rainbow 0,257,0,271
  374. End Proc
  375. Procedure IMPOSTALEZONEDEIMATTONCINI
  376.  Reserve Zone 264
  377.  Ink 29 : Polyline 272,0 To 272,208 To 0,208
  378.  For M=0 To 246
  379.   LINEADIMATTONCINI=M/13
  380.   RIGADIMATTONCINI=M mod 13
  381.   X0ZONA(M)=RIGADIMATTONCINI*21
  382.   Y0ZONA(M)=LINEADIMATTONCINI*11
  383.   MATTONCINO(M)=1
  384.   If MATTONCINO(M)>0 Then Paste Bob X0ZONA(M),Y0ZONA(M),82+MATTONCINO(M)
  385.   Set Zone M+1,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+20,Y0ZONA(M)+10
  386.  Next M
  387. End Proc
  388. Procedure IMPOSTALOSCHERMO
  389.  Screen Open 0,320,256,64,Lowres
  390.  Curs Off : Flash Off : Pen 29 : Paper 0 : Cls 
  391. End Proc
  392. Procedure MOSTRAILBONUS
  393.  CIFRA=BONUS/1000000 mod 10
  394.  Ink 29,32 : Text 84,216,Str$(CIFRA)-" "
  395.  CIFRA=BONUS/100000 mod 10
  396.  Ink 29,32 : Text 92,216,Str$(CIFRA)-" "
  397.  CIFRA=BONUS/10000 mod 10
  398.  Ink 29,32 : Text 100,216,Str$(CIFRA)-" "
  399.  CIFRA=BONUS/1000 mod 10
  400.  Ink 29,32 : Text 108,216,Str$(CIFRA)-" "
  401.  CIFRA=BONUS/100 mod 10
  402.  Ink 29,32 : Text 116,216,Str$(CIFRA)-" "
  403.  CIFRA=BONUS/10 mod 10
  404.  Ink 29,32 : Text 124,216,Str$(CIFRA)-" "
  405.  CIFRA=BONUS mod 10
  406.  Ink 29,32 : Text 132,216,Str$(CIFRA)-" "
  407. End Proc
  408. Procedure MOSTRAILLIVELLO
  409.  CIFRA=LIVELLO/100 mod 10
  410.  Ink 29,32 : Text 40,216,Str$(CIFRA)-" "
  411.  CIFRA=LIVELLO/10 mod 10
  412.  Ink 29,32 : Text 48,216,Str$(CIFRA)-" "
  413.  CIFRA=LIVELLO mod 10
  414.  Ink 29,32 : Text 56,216,Str$(CIFRA)-" "
  415. End Proc
  416. Procedure MOSTRAIMATTONCINI
  417.  For M=0 To 246
  418.   If MATTONCINO(M)=0
  419.    Ink 0 : Bar X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+19,Y0ZONA(M)+9
  420.   Else 
  421.    Paste Bob X0ZONA(M),Y0ZONA(M),MATTONCINO(M)+82
  422.   End If 
  423.  Next M
  424. End Proc
  425. Procedure MOSTRALALINEAATTIVA
  426.  If LINEAMAGGIORE=True
  427.   C0LORELINEAMAGGIORE=Rain(0,POSIZIONELINEAMAGGIORE)
  428.   Colour 1,C0LORELINEAMAGGIORE
  429.   Ink 1 : Bar 264,208 To 272,255
  430.   Ink 29 : Box 264,208 To 272,255
  431.   ROSSO=C0LORELINEAMAGGIORE/256
  432.   VERDE=C0LORELINEAMAGGIORE/16 mod 16
  433.   BLU=C0LORELINEAMAGGIORE mod 16
  434.   Ink 29 : Draw 272,POSIZIONELINEAMAGGIORE To 281,POSIZIONELINEAMAGGIORE
  435.   Ink 32 : Draw 310,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  436.  Else 
  437.   C0LORELINEAMINORE=Rain(0,POSIZIONELINEAMINORE)
  438.   Colour 1,C0LORELINEAMINORE
  439.   Ink 1 : Bar 264,208 To 272,255
  440.   Ink 29 : Box 264,208 To 272,255
  441.   ROSSO=C0LORELINEAMINORE/256
  442.   VERDE=C0LORELINEAMINORE/16 mod 16
  443.   BLU=C0LORELINEAMINORE mod 16
  444.   Ink 29 : Draw 272,POSIZIONELINEAMINORE To 281,POSIZIONELINEAMINORE
  445.   Ink 32 : Draw 310,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  446.  End If 
  447.  Hslider 233,209 To 264,223,16,ROSSO,1
  448.  Ink 0 : Bar 217,216 To 232,223
  449.  ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  450.  Hslider 233,225 To 264,239,16,VERDE,1
  451.  Ink 0 : Bar 217,232 To 232,239
  452.  VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  453.  Hslider 233,241 To 264,255,16,BLU,1
  454.  Ink 0 : Bar 217,248 To 232,255
  455.  BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  456.  Locate 10,31
  457.  If LINEAMAGGIORE=True Then Print "Major"; Else Print "Minor";
  458. End Proc
  459. Procedure MOSTRALEZONE
  460.  Print At(0,30);Space$(28);At(0,30);"Rainbow";Chr$(147);Chr$(148);Chr$(149);Chr$(150)
  461.  Print At(0,31);Space$(28);At(0,31);"Load Save       line";
  462. End Proc
  463. Procedure PROGRESSIONECOLORI
  464.  Shared LINEE,RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  465.  Shared ROSSOLINEAMINORE,VERDELINEAMINORE,BLULINEAMINORE
  466.  For LINEA=1 To LINEE-2
  467.   ROSSO=ROSSOLINEAMINORE+(LINEA)*RAGIONEDELROSSO#
  468.   VERDE=VERDELINEAMINORE+(LINEA)*RAGIONEDELVERDE#
  469.   BLU=BLULINEAMINORE+(LINEA)*RAGIONEDELBLU#
  470.   C0LORE=ROSSO*256+VERDE*16+BLU
  471.   Rain(0,POSIZIONELINEAMINORE+LINEA)=C0LORE : Rainbow 0,257,0,271
  472.   Bell 96
  473.  Next LINEA
  474. End Proc
  475. Procedure SALVAILLIVELLO
  476.  If CONVERSIONERIUSCITA=True
  477.   LIVELLO$="Livello"+Str$(LIVELLO)-" "
  478.   FILE$=PERCORSODEILIVELLI$+LIVELLO$
  479.   Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO)
  480.   Print At(0,29);"Level";LIVELLO;" saved";
  481.   Wait 100
  482.   Print At(0,29);Space$(28);
  483.  End If 
  484. End Proc